﻿// ------------------------------------------------------------------------------------------------
//  <copyright file="Crawler.cs" company="Iveely">
//    Copyright (c) Iveely Liu.  All rights reserved.
//  </copyright>
//  
//  <Create Time>
//    12/03/2012 20:12 
//  </Create Time>
//  
//  <contact owner>
//    liufanping@iveely.com 
//  </contact owner>
//  -----------------------------------------------------------------------------------------------

#region

using System;
using System.IO;
using IveelySE.Common;
using IveelySE.Common.Log;
using IveelySE.Config;
using IveelySE.Index;

#endregion

namespace IveelySE.Spider
{
    public class Crawler : ITask
    {
        public Crawler()
        {
            this.Name = " [爬虫服务] ";
        }

        public override void Sumbit(object parameters)
        {
            ////如果系统已经没有更新，那么爬虫和索引才会去执行新的任务
            //if(!Application.GetSystemUpdate())
            //{
                //在开始任务前，需要删除上次残留信息
                //if(Directory.Exists(Application.GetCrawlerTempDir()))
                //{
                //    string[] files = Directory.GetFiles(Application.GetCrawlerTempDir());
                //    foreach(var file in files)
                //    {
                //        File.Delete(file);
                //    }
                //    //Todo:如果文件夹不为空，那么会删除失败
                //    Directory.Delete(Application.GetCrawlerTempDir());
                //}
                //if(File.Exists(Application.GetIndexTemp()))
                //{
                //    File.Delete(Application.GetIndexTemp());
                //}

                #region 正常任务部分

                //启动爬虫下载数据
                try
                {
                    var engi = new Engine(Application.GetCrawlerUrl());

                    engi.Start();
                }
                catch (Exception exception)
                {
                    Content.GetInstance().Write(exception, MessageType.Error);
                    //Common.Function.WriteWarning(exception.Message);
                }
                try
                {
                    //完成之后，执行数据分析任务
                    Analysis.Build();
                }
                catch (Exception exception)
                {
                    Content.GetInstance().Write(exception, MessageType.Error);
                    //Common.Function.WriteWarning(exception.Message);
                }

                #endregion

            //    //将系统的更新状态设定为True（加载索引的时候就会更新）
            //    Application.SetSystemUpdate(true);
            //}
        }

        public static void Main(String[] args)
        {
            #region 正常任务部分

            //启动爬虫下载数据
            //var engi = new Engine(Application.GetCrawlerUrl());
            //engi.Start();
            //完成之后，执行数据分析任务
            //TODO:remenber open this
            Analysis.Build();

            #endregion
        }
    }
}